package modelo;

import home.HomePersistenciaHibernate;

import java.util.Map.Entry;

import excepciones.ContrasenaIncorrectaException;

public class ModuloAccionesUsuario extends Sistema{
	
	public ModuloAccionesUsuario(HomePersistenciaHibernate hp) {
		super(hp);
	}

	public void loguear(String nombreUsuario, String contrasena) {
		Entry<Usuario, Long> us = this.getHomeMemoria().traerUsuarioYCodigo(nombreUsuario);
		if(contrasena.equals(us.getKey().getContrasena())){
			us.getKey().setEstado("ONLINE");
		}else{
			throw new ContrasenaIncorrectaException();
		}
	}
	
	public void cambiarContrasenaDe(String nombre_usuario, String contrasenaVieja,
			String contrasenaNueva) throws Exception {
//		Entry<Usuario, Long> us = this.getHomeMemoria().traerUsuarioYCodigo(usuario.getNombre_usuario());
//		if(contrasenaVieja.equals(us.getKey().getContrasena()) && contrasenaVieja != contrasenaNueva){
//			us.getKey().setContrasena(contrasenaNueva);
//		}else{
//			throw new ContrasenaIncorrectaException();
//		}
		String contrasena = this.getHomePersistencia().obtenerContrasenaDe(nombre_usuario);
		if(contrasena.equals(contrasenaVieja)){
			this.getHomePersistencia().actualizarContrasenaDe(nombre_usuario, contrasenaNueva);
		}else{
			throw new ContrasenaIncorrectaException();
		}
	}
	
	public void pagarReserva(Asiento a){
		a.setPagado(true);
	}
}
